package com.hsmpay.mobile.action.added.anj;

import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import com.hsmpay.utils.MD5Util;
import com.hsmpay.utils.TimeUtils;
import com.hsmpay.common.util.URLDecoderTools;
import com.hsmpay.utils.UrlUtil;
import com.hsmpay.utils.WriteFile;
import com.hsmpay.utils.system.ConConfig;

public class Anj_bj {
	public static String debug = ConConfig.getAttribute("ADD_ANJ_DEBUG_STATUS");
	private static Logger log = Logger.getLogger(Anj_bj.class);
	static WriteFile wf = new WriteFile("added/anj","anj");

	Map<String,String> map=new HashMap<String,String>();
	String KeyStr="L7uAm7rN2PqcH7vuxM6yJYnKmhHCVW8D";
	String url="http://www.anj-bj.com/api/bjgypay.php";
	
	public boolean isFormal(){
		return ConConfig.isFormal() && "1".equals(debug);
	}
	
	/**获取商品分类
	 * 
	 * @param record_number
	 * 			返回条数，默认为10
	 * @param page_number
	 * 			页数，默认为0	
	 * @return 商品分类
	 */
	public String get_category(String record_number,String page_number)
	{
		String result="";
		String auth=MD5Util.md5(KeyStr+TimeUtils.getNowDateTime("yyyyMMdd"));
		map.clear();
		map.put("auth", auth);
		map.put("act", "get_category");
		map.put("record_number", record_number);
		map.put("page_number", page_number);

		try {
			log.debug("【获取商品分类】请求参数:"+map);
			wf.log("【获取商品分类】请求参数:"+map, "调试");
			if(!isFormal()){
				wf.log("【获取商品分类】请求参数:测试环境", "调试");
				result="{\"result\":\"true\",\"next\":\"false\",\"data\":[{\"cat_id\":\"16\",\"cat_name\":\"预混料\"},{\"cat_id\":\"17\",\"cat_name\":\"产品中心\"}]}";
			}else{
				wf.log("【获取商品分类】请求参数:生产环境", "调试");
				result = URLDecoderTools.decodeUnicode(UrlUtil.httpClientUtils(url,map));
			}
			log.debug("【获取商品分类】请求参数:"+result);
			wf.log("【获取商品分类】响应数据:"+result, "调试");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	/**获取分类下的商品列表
	 * @param catid
	 * 			商品分类编号,如果不传或为0则不限制分类取商品列表
	 * @param record_number
	 * 			返回条数，默认为10
	 * @param page_number
	 * 			页数，默认为0	
	 * @return 商品列表
	 */
	public String get_goods(String catid,String record_number,String page_number)
	{
		String result="";
		String auth=MD5Util.md5(KeyStr+TimeUtils.getNowDateTime("yyyyMMdd"));
		map.clear();
		map.put("auth", auth);
		map.put("act", "get_goods");
		map.put("catid", "catid");
		map.put("record_number", record_number);
		map.put("page_number", page_number);

		try {
			log.debug("【获取分类下的商品列表】请求参数:"+map);
			wf.log("【获取分类下的商品列表】请求参数:"+map, "调试");
			if(!isFormal()){
				wf.log("【获取分类下的商品列表】请求参数:测试环境", "调试");
				result="{\"result\":\"true\",\"next\":\"false\",\"data\":[{\"goods_id\":\"33\",\"goods_name\":\"安纳杰1号猪用复合预混料（小猪）\",\"goods_number\":\"10000\",\"shop_price\":\"118.00\",\"keywords\":\"4%猪用预混料 安纳杰\",\"goods_brief\":\"安纳杰1号为4%育成猪复合预混料，使用阶段15-30公斤仔猪，使用安纳杰1号，仔猪料肉比可达1.5-1.7，日增重可达600克以上。\",\"goods_thumb\":\"http://www.anj-bj.com/images/201504/thumb_img/33_thumb_G_1429217554501.jpg\",\"goods_img\":\"http://www.anj-bj.com/images/201504/goods_img/33_G_1429217554347.jpg\",\"last_update\":\"1429831239\"},{\"goods_id\":\"34\",\"goods_name\":\"安纳杰2号猪用复合预混料（中猪）\",\"goods_number\":\"10000\",\"shop_price\":\"103.00\",\"keywords\":\"4%猪用预混料 安纳杰\",\"goods_brief\":\"安纳杰2号为4%育成猪复合预混料，使用阶段30-60公斤育成猪，使用安纳杰2号，育成猪日增重可达1000克以上，料肉比平均在2.0左右。\",\"goods_thumb\":\"http://www.anj-bj.com/images/201504/thumb_img/34_thumb_G_1429217596859.jpg\",\"goods_img\":\"http://www.anj-bj.com/images/201504/goods_img/34_G_1429217596327.jpg\",\"last_update\":\"1429831409\"},{\"goods_id\":\"35\",\"goods_name\":\"X能量\",\"goods_number\":\"9999\",\"shop_price\":\"63.00\",\"keywords\":\"安纳杰 X能量 微生物添加剂\",\"goods_brief\":\"新型益生菌产品，主要成分丁酸梭菌、枯草芽苞杆菌等。\",\"goods_thumb\":\"http://www.anj-bj.com/images/201504/thumb_img/35_thumb_G_1428349543988.jpg\",\"goods_img\":\"http://www.anj-bj.com/images/201504/goods_img/35_G_1428349543516.jpg\",\"last_update\":\"1429204227\"}]}";
			}else{
				wf.log("【获取分类下的商品列表】请求参数:生产环境", "调试");
				result = URLDecoderTools.decodeUnicode(UrlUtil.httpClientUtils(url,map));
			}
			log.debug("【获取分类下的商品列表】请求参数:"+result);
			wf.log("【获取分类下的商品列表】响应数据:"+result, "调试");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	/**添加商品到购物车
	 * @param userid
	 * 			在光宇星进行支付的用户标识
	 * @param goods
	 * 			商品数组
				数组为一维数组，key为商品ID，value为商品数量，
				示例：
				array(
					商品ID => 商品数量,
					34 => 1,
					35 => 2
				)
	 * @return 商品列表
	 */
	public String add_cart(String userid,String[] goods){
		String result="";
		String auth=MD5Util.md5(KeyStr+TimeUtils.getNowDateTime("yyyyMMdd"));
		map.clear();
		map.put("auth", auth);
		map.put("act", "add_cart");
		map.put("userid", userid);
		for(int i=0;i<goods.length;i++) {
			String[] tArr=goods[i].split("=");
			map.put("goods["+tArr[0]+"]", tArr[1]);
		}
		try {
			log.debug("【添加商品到购物车】请求参数:"+map);
			wf.log("【添加商品到购物车】请求参数:"+map, "调试");
			if(!isFormal()){
				wf.log("【添加商品到购物车】请求参数:测试环境", "调试");
				result="{\"result\":true,\"data\":{\"33\":true,\"34\":true}}";
			}else{
				wf.log("【添加商品到购物车】请求参数:生产环境", "调试");
				result = URLDecoderTools.decodeUnicode(UrlUtil.httpClientUtils(url,map));
			}
			log.debug("【添加商品到购物车】请求参数:"+result);
			wf.log("【添加商品到购物车】响应数据:"+result, "调试");
		} catch (Exception e) {
			e.printStackTrace();
			wf.log("【添加商品到购物车】异常:"+e.getMessage(), "调试");
		}
		return result;
	}
	/**获取当前购物车中信息
	 * @param userid
	 * 			在光宇星进行支付的用户标识
	 * @return 商品列表
	 */
	public String get_cart_goods(String userid)
	{
		String result="";
		String auth=MD5Util.md5(KeyStr+TimeUtils.getNowDateTime("yyyyMMdd"));
		map.clear();
		map.put("auth", auth);
		map.put("act", "get_cart_goods");
		map.put("userid", userid);
		try {
			log.debug("【获取当前购物车中信息】请求参数:"+map);
			wf.log("【获取当前购物车中信息】请求参数:"+map, "调试");
			if(!isFormal()){
				wf.log("【获取当前购物车中信息】请求参数:测试环境", "调试");
				result="{\"result\":true,\"data\":{\"goods_list\":[{\"rec_id\":\"235\",\"user_id\":\"0\",\"session_id\":\"userid\",\"goods_id\":\"33\",\"goods_sn\":\"ECS000033\",\"product_id\":\"0\",\"goods_name\":\"安纳杰1号猪用复合预混料（小猪）\",\"market_price\":\"￥150.00元\",\"goods_price\":\"￥0.00元\",\"goods_number\":\"2\",\"is_real\":\"1\",\"parent_id\":\"0\",\"rec_type\":\"0\",\"is_gift\":\"0\",\"is_shipping\":\"0\",\"can_handsel\":\"0\",\"pid\":\"33\",\"subtotal\":\"￥0.00元\",\"goods_thumb\":\"images/201504/thumb_img/33_thumb_G_1429217554501.jpg\"},{\"rec_id\":\"236\",\"user_id\":\"0\",\"session_id\":\"userid\",\"goods_id\":\"34\",\"goods_sn\":\"ECS000034\",\"product_id\":\"0\",\"goods_name\":\"安纳杰2号猪用复合预混料（中猪）\",\"market_price\":\"￥130.00元\",\"goods_price\":\"￥0.00元\",\"goods_number\":\"1\",\"is_real\":\"1\",\"parent_id\":\"0\",\"rec_type\":\"0\",\"is_gift\":\"0\",\"is_shipping\":\"0\",\"can_handsel\":\"0\",\"pid\":\"34\",\"subtotal\":\"￥0.00元\",\"goods_thumb\":\"images/201504/thumb_img/34_thumb_G_1429217596859.jpg\"}],\"total\":{\"goods_price\":\"￥0.00元\",\"market_price\":\"￥430.00元\",\"saving\":\"￥430.00元\",\"save_rate\":\"100%\",\"goods_amount\":0,\"real_goods_count\":2,\"virtual_goods_count\":0}}}";
			}else{
				wf.log("【获取当前购物车中信息】请求参数:生产环境", "调试");
				result = URLDecoderTools.decodeUnicode(UrlUtil.httpClientUtils(url,map));
			}
			log.debug("【获取当前购物车中信息】请求参数:"+result);
			wf.log("【获取当前购物车中信息】响应数据:"+result, "调试");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	/**生成订单
	 * @param userid
	 * 			在光宇星进行支付的用户标识
	 * @param consignee
	 *			收货人
	 * @param address
	 *			收货人详细地址
	 * @param email
	 *			邮箱
	 * @param tel
	 * 			联系电话
	 * @param mobile
	 * 			手机号
	 * @return 商品列表
	 */
	public String add_order(String userid,String consignee,String address,String email,String tel,String mobile) {
		String result="";
		String auth=MD5Util.md5(KeyStr+TimeUtils.getNowDateTime("yyyyMMdd"));
		map.clear();
		map.put("auth", auth);
		map.put("act", "add_order");
		map.put("userid", userid);
		map.put("consignee", consignee);
		map.put("address", address);
		map.put("email", email);
		map.put("tel", tel);
		map.put("mobile", mobile);
		try {
			log.debug("【生成订单】请求参数:"+map);
			wf.log("【生成订单】请求参数:"+map, "调试");
			if(!isFormal()){
				wf.log("【生成订单】请求参数:测试环境", "调试");
				result="{\"result\":\"true\",\"data\":\"2015052667982\"}";
			}else{
				wf.log("【生成订单】请求参数:生产环境", "调试");
				result = URLDecoderTools.decodeUnicode(UrlUtil.httpClientUtils(url,map));
			}
			log.debug("【生成订单】请求参数:"+result);
			wf.log("【生成订单】响应数据:"+result, "调试");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	
	/**支付
	 * @param order_sn
	 * 			订单号
	 * @param total_fee
	 *			付款金额
	 */
	public String payed(String order_sn,String total_fee)
	{
		String result="";
		String auth=MD5Util.md5(KeyStr+TimeUtils.getNowDateTime("yyyyMMdd"));
		map.clear();
		map.put("auth", auth);
		map.put("act", "payed");
		map.put("order_sn", order_sn);
		map.put("total_fee", total_fee);
		try {
			log.debug("【支付】请求参数:"+map);
			wf.log("【支付】请求参数:"+map, "调试");
			if(!isFormal()){
				wf.log("【支付】请求参数:测试环境", "调试");
				result="{\"result\":\"true\",\"data\":\"订单2015060286274付款完成\"}";
			}else{
				wf.log("【支付】请求参数:生产环境", "调试");
				result = URLDecoderTools.decodeUnicode(UrlUtil.httpClientUtils(url,map));
			}
			log.debug("【支付】请求参数:"+result);
			wf.log("【支付】响应数据:"+result, "调试");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	/**订单取消
	 * @param order_sn
	 * 			订单号
	 */
	public String cancel_order(String order_sn)
	{
		String result="";
		String auth=MD5Util.md5(KeyStr+TimeUtils.getNowDateTime("yyyyMMdd"));
		map.clear();
		map.put("auth", auth);
		map.put("act", "cancel_order");
		map.put("order_sn", order_sn);
		try {
			log.debug("【订单取消】请求参数:"+map);
			wf.log("【订单取消】请求参数:"+map, "调试");
			if(!isFormal()){
				wf.log("【订单取消】请求参数:测试环境", "调试");
				result="{\"result\":\"true\",\"data\":\"订单2015052064415已取消\"}";
			}else{
				wf.log("【订单取消】请求参数:生产环境", "调试");
				result = URLDecoderTools.decodeUnicode(UrlUtil.httpClientUtils(url,map));
			}
			log.debug("【订单取消】请求参数:"+result);
			wf.log("【订单取消】响应数据:"+result, "调试");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	/**
	 * @param args
	 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Anj_bj anj=new Anj_bj();
		//返回条数
		String record_number="10";
		//页数
		String page_number="0";
		//商品分类编号
		String catid="17";
		//在光宇星进行支付的用户标识
		String userid="userid";
		//收货人
		String consignee="包月飞";
		//收货人详细地址
		String address="北京市丰台区南三环西路";
		String email="1@qq.com";
		String tel="13900000000";
		String mobile="13900000000";
		//订单号
		String order_sn="2015060286274";
		//订单金额
		String total_fee="0";
		//商品数组
		String goods[]={"34=1","33=2"};
//		System.out.println("获取商品分类,返回:"+anj.get_category(record_number,page_number));
//		System.out.println("获取分类下的商品列表,返回:"+anj.get_goods(catid, record_number, page_number));
		System.out.println("添加商品到购物车,返回:"+anj.add_cart(userid, goods));
//		System.out.println("获取当前购物车中信息,返回:"+anj.get_cart_goods(userid));
//		System.out.println("生成订单,返回:"+anj.add_order(userid, consignee, address, email, tel, mobile));
//		System.out.println("订单付款,返回:"+anj.payed(order_sn, total_fee));
//		System.out.println("订单取消,返回:"+anj.cancel_order(order_sn));
	}*/

}
